//
//  XLDefaultPortraitView.m
//  XLBaseModule
//
//  Created by 于鹏 on 2017/9/12.
//  Copyright © 2017年 YIVIEW. All rights reserved.
//

#import "XLDefaultPortraitView.h"

@implementation XLDefaultPortraitView

- (void)setColorAndLabel:(NSString *)userId Nickname:(NSString *)nickname {
    //设置背景色
    
    userId = [userId uppercaseString]; //设置为大写
    int asciiCode = [userId characterAtIndex:0];
    int colorIndex = asciiCode % 5;
    NSArray *colorList =
    [[NSArray alloc] initWithObjects:@"#e97ffb", @"#00b8d4", @"#82b2ff",
     @"#f3db73", @"#f0857c", nil];
    NSString *backgroundColorStr = colorList[colorIndex];
    self.backgroundColor = [self hexStringToColor:backgroundColorStr];
    
    //设置字母Label
    UILabel *firstCharacterLabel = [[UILabel alloc] init];
    
    NSString *firstLetter = nil;
    if(nickname.length > 0){
        firstLetter = [nickname substringToIndex:1];
    }else {
        firstLetter = @"#";
    }
    firstCharacterLabel.text = firstLetter;
    firstCharacterLabel.textColor = [UIColor whiteColor];
    firstCharacterLabel.textAlignment = NSTextAlignmentCenter;
    firstCharacterLabel.font = [UIFont systemFontOfSize:50];
    firstCharacterLabel.frame = CGRectMake(
                                           self.frame.size.width / 2 - 30, self.frame.size.height / 2 - 30, 60, 60);
    [self addSubview:firstCharacterLabel];
}

- (UIColor *)hexStringToColor:(NSString *)stringToConvert {
    NSString *cString = [[stringToConvert
                          stringByTrimmingCharactersInSet:[NSCharacterSet
                                                           whitespaceAndNewlineCharacterSet]]
                         uppercaseString];
    // String should be 6 or 8 characters
    
    if ([cString length] < 6)
        return [UIColor blackColor];
    // strip 0X if it appears
    if ([cString hasPrefix:@"0X"])
        cString = [cString substringFromIndex:2];
    if ([cString hasPrefix:@"#"])
        cString = [cString substringFromIndex:1];
    if ([cString length] != 6)
        return [UIColor blackColor];
    
    // Separate into r, g, b substrings
    
    NSRange range;
    range.location = 0;
    range.length = 2;
    NSString *rString = [cString substringWithRange:range];
    range.location = 2;
    NSString *gString = [cString substringWithRange:range];
    range.location = 4;
    NSString *bString = [cString substringWithRange:range];
    // Scan values
    unsigned int r, g, b;
    
    [[NSScanner scannerWithString:rString] scanHexInt:&r];
    [[NSScanner scannerWithString:gString] scanHexInt:&g];
    [[NSScanner scannerWithString:bString] scanHexInt:&b];
    
    return [UIColor colorWithRed:((float)r / 255.0f)
                           green:((float)g / 255.0f)
                            blue:((float)b / 255.0f)
                           alpha:1.0f];
}

- (UIImage *)imageFromView {
    
    UIGraphicsBeginImageContext(self.frame.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    [self.layer renderInContext:context];
    UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return theImage;
}



@end
